const express = require('express')
const morgan = require('morgan')
const favicon = require('serve-favicon')
const path = require('path')
const bodyParser = require('body-parser')
const router = require('./router/router.js')
const cors = require('cors') //跨域
const SECRET_KEY = 'kite1874'
const { expressjwt: jwt } = require("express-jwt")//解token


const app = express() //创建服务    

app.use(morgan('dev'))//日志
//配置 post请求  配置了 服务器才能够解析post的数据
app.use(bodyParser.urlencoded({
  extended: false
}))
app.use(bodyParser.json())
app.all('*', function (req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "X-Requested-With");
  res.header("Access-Control-Allow-Methods", "POST,GET");//PUT,POST,GET,DELETE,OPTIONS
  res.header("X-Powered-By", 'weizhixi.com 1.0.0');//Your Powered By
  next();
});

// //注册中间件，相当于配置一个全局 token 验证，unless 就是上面说的白名单
// //把不需要 token 验证的请求填进 path 里即可, 支持数组、字符串、正则
// app.use(jwt({ secret: SECRET_KEY, algorithms: ['HS256'] })
//   .unless({ path: ['/noToken/login', /^\/src\/.*/] })); // /auth/adminLogin api 和 src 下的文件都不需要 token 验证

// app.use(expressjwt({secret:secretkey,algorithms:['HS256']}).unless({path:[/^\/api\//]}))

app.use(cors())
app.use(router)

app.use(express.static('./src')) //配置 配置静态资源文件访问的路径


app.use(favicon(path.join(__dirname, './src', 'favicon.ico')))//配置图标
// app.use(express.static(__dirname + "/src")) //配置 配置静态资源文件访问的路径
// app.use(favicon(__dirname + "/src/favicon.ico"))//配置图标
app.listen('8888', () => {
  console.log('服务器启动')
})